public class Demo01 {
    //单行注释

    /*
    * 多行注释
    * */

    /**
     * javadoc注释
     * */

    /*
    * 计算机英语：
    *   增: add new save
    *   删: delete remove drop
    *   改: update set modify
    *   查: find get query select
    * */

    /*
    * [重点] java中类的初始化过程(加载过程)：由父到子 静态先行
    *       [java中类的初始化正常顺序]：静态代码块(静态变量)--->实例变量--->实例代码块--->构造方法--->静态方法
    *                 注意：静态变量和静态代码块的加载顺序由编写前后决定(代码执行顺序，由上至下)
    *       若类是子类时，子类继承父类，程序的执行过程中先加载父类
    *       1.初始化父类中的静态变量和静态代码块
    *       2.初始化子类中的静态变量和静态代码块
    *       3.初始化父类中的实例变量、实例代码块、再执行父类中的构造方法
    *       4.初始化子类中的实例变量、实例代码块、再执行子类中的构造方法
    * */

    /*
    * idea快捷键：
    *   alt + ins  创建
    *   ctrl + alt + 空格 提示信息
    *   Ctrl + d 复制一行
    *   ctrl + y 删除一行
    *   alt + enter（回车） 导入包 + 自动修正
    *   ctrl + shift + F12 缩放窗口
    *   ctrl + alt + l 格式刷
    *   ctrl + alt + o 删除无效引用
    *   ctrl — 收缩
    *   ctrl + 展开
    * */
    public static void main(String[] args){

        Demo01 demo011 = new Demo01();
        boolean test = demo011.test("124521");
        System.out.println(test);

        System.out.println("Hello world");

        Demo01 demo01 = new Demo01();
        Demo01 demo02 = new Demo01();
        Class<? extends Demo01> aClass = demo01.getClass();
        Class<? extends Demo01> aClass2 = demo02.getClass();
        System.out.println("Demo01类实例，每个实例都不相同"+ demo01.hashCode());
        System.out.println("Demo01类实例，每个实例都不相同"+ demo02.hashCode());
        System.out.println("Demo01类的唯一Class对象为：" + aClass.hashCode());
        System.out.println("Demo01类的唯一Class对象为：" + aClass2.hashCode());
        ClassLoader classLoader = aClass.getClassLoader();
        System.out.println("Demo01类的类加载器" + classLoader);
        ClassLoader parent = classLoader.getParent();
        System.out.println("Demo01类加载器上级加载器" + parent);
        ClassLoader parent1 = parent.getParent();
        System.out.println("Demo01类加载器的上级更上级加载器" + parent1);
    }

    /**
     * 回文串含义：回文串是一个特殊的string，其正读与反读是一样的。例如：12321,123321
     */
    public boolean test(String str){
        if("".equals(str) || str == null){
            return false;
        }
        String[] strs = str.split("");
        int j = strs.length - 1;
        for(int i = 0 ;  i <= j ; i++ ,j-- ){
            if(!strs[i].equals(strs[j])){
                return false;
            }
        }
        return true;
    }
}
